package com.findme.gui;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.findme.controller.ControllerGrupo;
import com.findme.controller.ControllerUsuario;
import com.findme.findme.R;
import com.findme.model.Grupo;
import com.findme.model.Usuario;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class TelaMeusGrupos extends Activity {
	
	 Usuario userAtivo = null;	
	 Grupo   grupoAtivo=null; 
	 String[]  listaGrupos=new String[100]; 
	 
	 public int selectedItem = -1;
	 
	 
	public boolean lista_Grupos(){
		
    ListView  lista  = (ListView) findViewById(R.id.lstViewGrupos);
    
		
	//Get the element that holds the earthquakes ( JSONArray )
	try {
		
		
		//controlador para listar grupos	
		ControllerGrupo ctg = new ControllerGrupo(grupoAtivo);	
		
		
		//lista JSON

		JSONArray jsonLista = ctg.listar(TelaMeusGrupos.this);		
		 //ArrayList<String> list = new ArrayList<String>();
		


		
		if(jsonLista!=null){
			
		listaGrupos = new String[jsonLista.length()*3];

		int total= jsonLista.length();
		int anda=0;
		List<HashMap<String, Object>> fillMaps = new ArrayList<HashMap<String, Object>>();
		
		for (int i = 0; i < total; i++) { //ando na lista de grupos
							
			JSONObject e = jsonLista.getJSONObject(i);
			
			/*listaGrupos[anda]   = e.getString("id"); 
			listaGrupos[anda+1] = e.getString("nome"); 
			listaGrupos[anda+2] = e.getString("about"); */
			
			
		    HashMap<String, Object> map = new HashMap<String, Object>();
		    map.put("id", e.getString("id")); // This will be shown in R.id.title
		    map.put("nome",e.getString("nome")); // And this in R.id.description
		    map.put("about", e.getString("about")); // And this in R.id.description
		    
		    
		    
		    if(e.getString("ativo").equals("1")) {
		    	map.put("ativo","on");// And this in R.id.description}
		    	} 
		    else{
		    	map.put("ativo","off");}
		    
		    fillMaps.add(map);			
			
			
			
			
					
			anda=anda+3;
			
		}	
		
		
		String[] from = new String[] { "id", "nome" ,"about","ativo"};
		int[]    to   = new int[] { R.id.tituloItemGruposLayout, R.id.descricaoItemGruposLayout,R.id.aboutItemGruposLayout,R.id.ativoItemGruposLayout };
		
	    SimpleAdapter adapter = new SimpleAdapter(TelaMeusGrupos.this, fillMaps, R.layout.activity_meus_grupo_item_layout, from, to);
	    lista.setAdapter(adapter);
	    
		
		}
		else {
			
			lista.setAdapter(new ArrayAdapter<String>(this,
		            android.R.layout.simple_list_item_1,                      
		            new String[] {TelaMeusGrupos.this.getString(R.string.cadEmpty),}			
					));		
			
			lista.setEnabled(false);
			
		}
		
		
		
	} catch (JSONException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}		
		
		
	////////////////////////////////////////////////////////////////////////

	return true;
	
	}	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_tela_meus_grupos);
		
	    //pega usuario da tela principal
	    Intent intent = getIntent();
	    Bundle params = intent.getExtras();  	      
	    if(params!=null){
	     //usuario carregdo no login
	     userAtivo = (Usuario) params.getSerializable("Usuario");
	    }
	    
	    grupoAtivo=new Grupo();
	    grupoAtivo.setidUsuario(userAtivo.getId());
	    
		//NOVO GRUPO
		ImageView  btnNovoGrupo  = (ImageView) findViewById(R.id.imgVwNovoGrupo);		
		btnNovoGrupo.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
			  Intent i = new Intent(TelaMeusGrupos.this, TelaNovoGrupo.class);			  
			  //passa paremetro de lider para o novo grupo para a tela de novo grupo
			  Bundle params = new Bundle();
			  params.putSerializable("Grupo", grupoAtivo);
			  i.putExtras(params);				  
			  startActivityForResult(i, 1);
			}	
			
		});		
		

		/*lista grupos*/
		final ListView listaGrupos = (ListView) findViewById(R.id.lstViewGrupos);
		

		listaGrupos.setOnItemClickListener(new AdapterView.OnItemClickListener() {

	        @SuppressLint("NewApi") @Override
	        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) 
	        {           
	        	        /*selectedItem = position;
	        	        Object o = listaGrupos.getItemAtPosition(position);
	        	        String selectedFromList = (listaGrupos.getItemAtPosition(position).toString()); //{ID=4, ABOUT=casdjasfnasifask aif ajfas fasnf asfansfasif, DESCRICAO=o grupo teste}       	        
	     */
	        	        String idGrupoSelecionado   =  ((TextView)view.findViewById(R.id.tituloItemGruposLayout)).getText().toString();
	        	        String nomeGrupoSelecionado =  ((TextView)view.findViewById(R.id.descricaoItemGruposLayout)).getText().toString();
	        	        String aboutGrupoSelecionado =  ((TextView)view.findViewById(R.id.aboutItemGruposLayout)).getText().toString();
	        	        String statusGrupoSelecionado =  ((TextView)view.findViewById(R.id.ativoItemGruposLayout)).getText().toString();
               	        
	        	        grupoAtivo.setId(Integer.parseInt(idGrupoSelecionado));
	        	        grupoAtivo.setNome(nomeGrupoSelecionado);
	        	        grupoAtivo.setAbout(aboutGrupoSelecionado);
	        	        grupoAtivo.setAtivo(statusGrupoSelecionado.equals("on"));
 	      	        	        
	        	        
	  				    //passa paremetro de usuario para a tela de grupos
	  				    Bundle params = new Bundle();
	  				    params.putSerializable("Grupo", grupoAtivo);
	  				    
	  				    Intent i = new Intent(TelaMeusGrupos.this, TelaPreferenciasGrupo.class);
	  				    i.putExtras(params);		        	                        
    	        	
	                	
	                	startActivityForResult(i, 1);
	        }

	     });	
		
		

		 this.lista_Grupos();	 		

	    
	}//fim create

   public void onRestart()	{
	   super.onRestart();
	   this.lista_Grupos();	 
	   
   }
	
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.tela_meus_grupos, menu);
		return true;
	}
	
	

}


/*
   
       AlertDialog.Builder mensagem = new AlertDialog.Builder(null); // nomedaclasse
        mensagem.setTitle(titulo);// associa a um titulo
        mensagem.setMessage(texto);// associa uma mensagem
        mensagem.setNeutralButton("OK", null);
        mensagem.show();



*/